package cn.edu.wtbu.wtbu_music_server.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * 统一业务层返回对象
 */
@Schema(description = "统一业务层返回对象")
@Data
@Accessors(chain = true)  //开启链式编程
public class R{

    /**状态码  0-成功 */
    @Schema(description = "状态码")
    private Integer code;
    /**附加文本信息 */
    @Schema(description = "附加文本信息")
    private String msg;
    /**执行是否成功*/
    @Schema(description = "执行是否成功")
    private boolean success;
    /**附加返回数据，例如：数据集合*/
    @Schema(description = "附加返回数据，例如：数据集合")
    private Object data;

    /**
     * 声明统一成功返回结果
     * @return
     */
    public static R ok(){
        R r = new R();
        r.code = 0;
        r.msg = "执行成功";
        r.success = true;
        return r;
    }

    /**
     * 声明统一失败返回结果
     * @return
     */
    public static R fail(){
        R r = new R();
        r.code = -1;
        r.msg = "执行失败";
        r.success = false;
        return r;
    }
}
